<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head><link rel="stylesheet" type="text/css" href="description/Combined.css,0:HeaderFooterSprite,0:Header.NonMtps,1:LinkList;/Areas/Centers/Themes/StandardDevCenter/Content:0,/Areas/Epx/Themes/Base/Content:1&amp;amp;hashKey=C9973DA951AE6202C9B348379A1BE49D" xmlns="http://www.w3.org/1999/xhtml" />
<link type="text/css" rel="stylesheet" xmlns="http://www.w3.org/1999/xhtml" />
<link rel="stylesheet" type="text/css" href="description/1b88b18a-5268-4861-9da2-6c6e2539edaaCombined.css,0:HeaderFooterSprite,0:Footer.NonMtps,1:LinkList;/Areas/Centers/Themes/StandardDevCenter/Content:0,/Areas/Epx/Themes/Base/Content:1&amp;amp;hashKey=F576C687BC536B84D6E5B3246EE39B49" xmlns="http://www.w3.org/1999/xhtml" />
<link type="text/css" rel="stylesheet" xmlns="http://www.w3.org/1999/xhtml" />

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>SharePoint 2013: Use multiple SharePoint lists in a Windows Phone app (sample 1)</title>
        <link href="description/Galleries.css" type="text/css" rel="Stylesheet" /><link href="description/Layout.css" type="text/css" rel="Stylesheet" /><link href="description/Brand.css" type="text/css" rel="Stylesheet" />
        <link href="description/iframedescription.css" rel="Stylesheet" type="text/css" />
        <script src="description/offline.js" type="text/javascript"></script>
        <style type="text/css">
            #projectInfo {
                overflow: auto;
            }
            #longDesc {
                clear:both;
                margin: 25px 0 10px 0;
            }

            #SampleIndexList{
                margin-left: 15px;
            }
        </style>
    </head>
<body>
    <div id="offlineDescription">
        <h1>SharePoint 2013: Use multiple SharePoint lists in a Windows Phone app (sample 1)</h1>
        <br/>
        <div id="projectInfo">
            <div class="section">
                    <div class="itemBarLong tagsContainer">
                        <label for="Technologies">Technologies</label>
                        <div id="Technologies">
                            C#, SharePoint Server 2013, SharePoint Foundation 2013, apps for SharePoint
                        </div>
                    </div>
                    <div class="itemBarLong tagsContainer">
                        <label for="Topics">Topics</label>
                        <div id="Topics">
                            Mobile
                        </div>
                    </div>
                <div class="itemBarLong">
                    <label for="Platforms">Platforms</label>
                    <div id="Platforms">
                        Web, Cloud
                    </div>
                </div>
                <div class="itemBarLong">
                    <label for="Requirements">Requirements</label>
                    <div id="Requirements">
                        
                    </div>
                </div>
                <div class="itemBar">
                    <label for="LastUpdated">Primary language</label>
                    <div id="LastUpdated">en-US</div>
                </div>
                <div class="itemBar">
                    <label for="LastUpdated">Updated</label>
                    <div id="LastUpdated">2/6/2013</div>
                </div>
                <div class="itemBarLong">
                    <label for="License">License</label>
                    <div id="License">
                        <a href="license.rtf">Apache License, Version 2.0</a></div>
                </div>
                <div class="itemBar">
                    <div class="viewonlinecont">
                        <a data-link="online" href="http://code.msdn.microsoft.com/SharePoint-2013-Use-a619f634">View this sample online</a>
                    </div>
                </div>
            </div>
        </div>
        
                   
<script type="text/javascript">
    function initializePage() {
        var otherTabClass = 'otherTab';
        var hiddenPreClass = 'hidden';

        var htmlDecode = function(encodedData) {
            var decodedData = "";
            if (encodedData) {
                var div = document.createElement('div');
                div.innerHTML = encodedData;
                decodedData = div.firstChild.nodeValue.replace( /\\r\\n/ig , '\r\n');
            }
            return decodedData;
        };
                
        Galleries.iterateElem(Galleries.findElem(null, 'div', 'scriptcode'), function (index, scriptBlock) {
            var titleElem = Galleries.findElem(scriptBlock, 'div', 'title')[0];
            var labelElems = Galleries.findElem(titleElem, 'span');
            if (labelElems.length == 0) {
                labelElems = titleElem;
            }
            var languageSpans = Galleries.findElem(scriptBlock, 'span', 'hidden');
            var pres = Galleries.findElem(scriptBlock, 'pre');
            if (languageSpans.length > 0 && pres.length > 1) {
                Galleries.iterateElem(labelElems, function(index, elem) {
                    var codePre = pres[index];
                    var labelSpan = elem;
                    var languageSpan = languageSpans[index];
                            
                    elem.code = codePre.innerHTML.replace( /(\r(\n)?)|((\r)?\n)/ig , '\\r\\n');
                            
                    codePre.className = codePre.className.replace(hiddenPreClass, '');
                            
                    languageSpan.parentNode.removeChild(languageSpan);
                });

                pres = Galleries.findElem(scriptBlock, 'pre');
                Galleries.iterateElem(labelElems, function(index, elem) {
                    var codePre = pres[index];
                    var labelSpan = elem;
                    if (index == 0) {
                        scriptBlock.activeTab = 0;
                    }
                    else {
                        labelSpan.className += otherTabClass;
                        codePre.className += hiddenPreClass;
                    }
                    Galleries.attachEventHandler(labelSpan, 'click', function(e) {
                        var activeTab = scriptBlock.activeTab;
                        labelElems[activeTab].className += otherTabClass;
                        pres[activeTab].className += hiddenPreClass;

                        codePre.className = codePre.className.replace(hiddenPreClass, '');
                        labelSpan.className = labelSpan.className.replace(otherTabClass, '');
                        scriptBlock.activeTab = index;
                    });
                });

                var preview = Galleries.findElem(scriptBlock, 'div', 'preview');
                if (preview.length == 0) {
                    preview.push(pres[pres.length - 1]);
                }
                Galleries.iterateElem(preview, function(index, elem) {
                    elem.parentNode.removeChild(elem);
                });

                if (window.clipboardData && clipboardData.setData) {
                    var copyLink = document.createElement('a');
                    copyLink.href = 'javascript:void(0);';
                    copyLink.className = 'copyCode';
                    copyLink.innerHTML = 'Copy code';
                    Galleries.attachEventHandler(copyLink, 'click', function (e) {
                        clipboardData.setData("Text", htmlDecode(labelElems[scriptBlock.activeTab].code));
                        return false;
                    });
                    scriptBlock.insertBefore(copyLink, scriptBlock.childNodes[0]);
                }
            }
        });
    }

    Galleries.onWindowLoad(function(){
        initializePage();
    });

</script>
<div id="longDesc">
    
<p><span style="font-size:small">Suppose you have two SharePoint lists based on the Contacts list template. One list, named Marketing Team, contains members of a marketing team at your organization; the other list, Engineering Team, contains members of an engineering
 team. If you create a project by using the Windows Phone SharePoint List Application template, and you specify the Marketing Team list as the target list on which to base the project, an instance of the
<strong>ListDataProvider</strong> class is created (named <strong>DataProvider</strong> by default) in the implementation of the
<strong>App</strong> class in the App.xaml.cs file in the project. This object represents the list (that is, the Marketing Team list) as a data source for the app, providing operations to access and manipulate items in the list. An instance of the
<strong>ListViewModel</strong> class is also created for the list on which the app is based. This object has a property member (which also happens to be named
<strong>DataProvider</strong>) that can be set to a given instance of the <strong>
ListDataProvider</strong> class, establishing the data source for the <strong>ListViewModel</strong> class instance.</span></p>
<p><span style="font-size:small">You can create another instance of the <strong>ListDataProvider</strong> class in the project to serve as the data source for the second list (Engineering Team) in the App.xaml.cs file.</span></p>
<h1>Prerequisites</h1>
<p><span style="font-size:small">This sample requires the following:</span></p>
<ul>
<li><span style="font-size:small">Visual Studio 2010 Express with the new SharePoint templates</span>
</li><li><span style="font-size:small">&nbsp;</span><span style="font-size:small">An installation of SharePoint 2013 with administrative privileges</span>
</li></ul>
<h1>Key components of the sample</h1>
<p><span style="font-size:small">The MultipleSPListAppSingleProject project connects to a single list (Marketing Team) and provides the ability to create, edit, and delete the items in the list. You can follow the instructions in
<a href="http://msdn.microsoft.com/en-us/library/jj163289.aspx" >How to: Use multiple SharePoint 2013 lists in a Windows Phone app</a> to update this solution and to understand how to use the same listdataprovider.cs file for two lists&nbsp;
 that have the same schema and for two lists&nbsp; that have different schema.</span></p>
<p><span style="font-size:small">The sample contains the following:</span></p>
<ul>
<li><span style="font-size:small">MultipleSPListAppSingleProject project</span>
<ul>
<li><span style="font-size:small">App.xaml.cs is autogenerated by Windows Phone SharePoint List Application template. &nbsp;The App.xaml file represents the overall Windows app. The associated code-behind file, App.xaml.cs, includes procedural code to handle
 life-cycle events for the app. App.xaml.cs contains references to SharePoint Server and the list title.</span>
</li><li><span style="font-size:small">Listdataprovider.cs contains code for accessing data on SharePoint Server and provides access to the query syntax on which the various list views of the application are based.</span>
</li></ul>
</li></ul>
<h1>Configure the sample</h1>
<p><span style="font-size:small">This code sample covers two scenarios:</span></p>
<ul>
<li><span style="font-size:small">Creating a solution involving SharePoint lists based on the same schema</span>
</li><li><span style="font-size:small">Creating a solution involving SharePoint lists based on different schemas</span>
</li></ul>
<p><span style="font-size:small">To learn more about the configuring the solution for different scenarios, see
<a href="http://msdn.microsoft.com/en-us/library/jj163289.aspx" >How to: Use multiple SharePoint 2013 lists in a Windows Phone app</a>.</span></p>
<p><span style="font-size:small">Follow these steps to configure the sample.</span></p>
<ol>
<li><span style="font-size:small">Update the value of <strong>TargetSiteUrl</strong> in the App.xaml.cs file of the MultipleSPListAppSingleProject solution with the URL of the home page of your SharePoint.</span>
</li><li><span style="font-size:small">Update the value of <strong>ListTitle</strong> in the App.xaml.cs file of the MultipleSPListAppSingleProject solution with the title of your SharePoint list.</span>
</li></ol>
<h1>Run and test the sample</h1>
<p><span style="font-size:small">Users of your app can navigate between the Marketing Team list and the Engineering Team list. Because the underlying list schemas are the same, the default
<strong>DataProvider</strong> and <strong>MainViewModel</strong> objects generated by the template and the added
<strong>SecondaryDataProvider</strong> and <strong>SecondaryViewModel</strong> objects handle all the data transactions without requiring any modifications to the ListDataProvider.cs file.</span></p>
<ol>
<li><span style="font-size:small">Press the F5 key to build and run the app.</span>
</li></ol>
<h1>Troubleshooting</h1>
<p><span style="font-size:small">The following table lists common configuration and environment errors that prevent the sample from running or deploying properly and how to solve them.</span></p>
<table border="0" cellspacing="5" cellpadding="5" frame="void" align="left" style="width:601px; height:212px">
<tbody>
<tr style="background-color:#a9a9a9">
<th align="left" scope="col"><strong><span style="font-size:small">Problem </span>
</strong></th>
<th align="left" scope="col"><strong><span style="font-size:small">Solution</span></strong></th>
</tr>
<tr valign="top">
<td><span style="font-size:small">While running the SharePoint List wizard from Visual Studio 2010 Express, an error may occur if developer does not have sufficient privilege on SharePoint site.</span></td>
<td><span style="font-size:small">Give sufficient privilege to the user account with which developer is running the wizard.</span></td>
</tr>
<tr valign="top">
<td><span style="font-size:small">Form-based authentication error. <br>
<br>
<img id="60943" src="description/fig1.png" alt="" width="182" height="339"></span></td>
<td><span style="font-size:small">Form-based authentication is not enabled by default. To enable basic form-based authentication for the web application, follow these steps.</span>
<ul>
<li><span style="font-size:small">Navigate to Central Administration and ensure you have administrator rights on the server.</span>
</li><li><span style="font-size:small">Under <strong>Application Management</strong>, choose
<strong>Manage Web Applications</strong>.</span> </li><li><span style="font-size:small">Choose your web application (on which you have your SharePoint site, which you are accessing from your mobile app).</span>
</li><li><span style="font-size:small">From the ribbon, choose <strong>Authentication Providers</strong>.</span>
</li><li><span style="font-size:small">In the <strong>Authentication Provider </strong>
dialog box, choose <strong>Default</strong> to edit the authentication.</span> </li><li><span style="font-size:small">In the <strong>Edit Authentication Model </strong>
window under <strong>Claims Authentication Types</strong>, choose <strong>Basic Authentication</strong>.</span>
</li></ul>
</td>
</tr>
</tbody>
</table>
<h1><br>
<br>
<span style="font-size:small">&nbsp;</span><br>
<br>
<br>
</h1>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h1>Change log</h1>
<p><span style="font-size:small">First version: July 16, 2012</span></p>
<h1>Related content</h1>
<ul>
<li><span style="font-size:small"><a href="http://msdn.microsoft.com/en-us/library/jj163289.aspx" >How to: Use multiple SharePoint 2013 lists in a Windows Phone app</a></span>
</li><li><span style="font-size:small"><a href="http://msdn.microsoft.com/en-us/library/jj163259.aspx" >How to: Create a Windows Phone SharePoint 2013 list app</a></span>
</li><li><a href="http://msdn.microsoft.com/en-us/library/jj163786.aspx" ><span style="font-size:small">Overview of Windows Phone SharePoint 2013 application templates in Visual Studio</span>
</a></li></ul>

</div>


    </div>
</body>
</html>
